﻿/*****************************************************************************

   Project:   WP7AppLifecycleService
   File:      IWP7Application.cs 
   Creator:   David Carballo (dacarb@gmail.com)
   
   Description:
      Definition of IWP7Application interface.

   (C) Copyright 2011, David Carballo
       http://wp7applifecycle.codeplex.com/license

******************************************************************************/

namespace WP7AppLifecycleService
{
    /// <summary>
    /// Interface that must be implemented by the application object so that the
    /// service in this library can access the <see cref="Microsoft.Phone.Controls.PhoneApplicationFrame"/>
    /// that is the actual RootFrame.
    /// </summary>
    /// <remarks>
    /// If not implemented by the application object, the service will throw an
    /// exception when initializing/starting.
    /// </remarks>
    public interface IWP7Application : System.ComponentModel.INotifyPropertyChanged
    {
        /// <summary>
        /// Gets the root frame of the Phone Application as a convenient easy access to it from the library.
        /// </summary>
        /// <returns>The root frame of the Phone Application.</returns>
        /// <remarks>When set in interface implementations it must fire the PropertyChanged event.</remarks>
        Microsoft.Phone.Controls.PhoneApplicationFrame RootFrame { get; }
    }
}
